package com.abou.manager.admin;

import com.abou.model.admin.Account;

/**
 * The interface defining the method used to manage user accounts.
 * 
 * @author khalid
 */
public interface IAccountManager {
  
  /**
   * Creates and persists the passed account.
   * 
   * @param account A user account
   */
  void createAccount(Account account);
  
  /**
   * Returns the account corresponding to the passed user login.
   * 
   * @param login See {@link Account#getLogin()}.
   * @return The account for the passed owner
   */
  Account getAccount(String login);
  
  /**
   * Modifies the account stored in the database according to the passed account
   * values
   * 
   * @param account A user account
   */
  void setAccount(Account account);
  
}
